package com.wx.leetcode;

/**
 * @desc: 整数反转
 * 给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。
 * 假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为 [−231,  231 − 1]。请根据这个假设，如果反转后整数溢出那么就返回 0
 * @author: wx
 * @time: 2020/4/2 1:22 PM
 */
public class ReverseTopic {

    public static int reverse(int x) {

        if (x > Integer.MAX_VALUE || x < Integer.MIN_VALUE){
            return 0;
        }

        String num = String.valueOf(x);
        char[] chars = num.toCharArray();

        int j = chars.length - 1;
        int i = chars[0] != '-' ? 0 : 1;

        for (;i < chars.length; i++,j--) {
                if (i < j){
                   char temp = chars[i];
                   chars[i] = chars[j];
                   chars[j] = temp;
                }
        }

        Long aLong = Long.valueOf(String.valueOf(chars));
        if (aLong > Integer.MAX_VALUE || aLong < Integer.MIN_VALUE){
            return 0;
        }

        return aLong.intValue();

    }

    public static void main(String args[]) {
        System.out.println(reverse(-153));
    }



}
